画布 1
应用层
  2.1 应用层协议原理
    网络应用程序
      功能
        可以向网络发送数据
        可以向网络接受数据
        对数据进行处理
      体系结构
        C/S模式
          服务器:一个可以想客户机提供服务的主机
          客户机:主动连接服务器,试图从服务器那里获取所需服务
          特点
            客户机不能通信
            通常采用服务器群的模式
        P2P模式
          任何一方享受服务也提供服务
          结点之间可以互相通信
          结点之间的地址以及其连接会发生变化
    应用层协议
      交换的报文类型
      报文的语法
      字段的定义
      进程何时、如何发送报文
      报文的相应
    需求的服务
      TCP
      UDP
      SSL
        介于应用层和传输层之间的协议
        数据完整性检查
        身份鉴权
        加密的TCP
      在下一章讲述
    Socket
      标记每一个网络应用进程(给每个进程编号)
      分成两部分
        32位主机地址:标记运行在哪个主机
        16位端口地址:在主机上标记运行在什么进程上
      运行机理
        发送进程将报文发送到套接字
        套接字将这些报文传输到接受进程的套接字
        也就是说套接字像一个管道的两端,发送进程发送信息到管道里面(也就是传递给套接字),接受进程从管道里面接受信息(从套接字里面获取信息),具体管道怎么实现的进程不需要了解,双方在管道的两端,管道和双方之间就是套接字
  2.2 Web和HTTP
    构成
      客户端
      服务端
      协议
    内容表达
      Web 页面由一些对象组成
        对象可以是图片,文本,多媒体
        对象可以是HTML文件,HTML文件像是一个容器,装载着图片文本多媒体对象,是对象的容器
        任何一个对象都可以用 URL来定位
    传输模式
      HTTP1.0
        客户端启动TCP连接,请求与服务器上的80号端口建立TCP连接
        服务器的80端口一直监听是否有客户端请求,监听到了立刻与客户端建立TCP连接,并把成功信息传给客户端
        客户端获得了来自于服务端的TCP回应,知道TCP连接已经建立,开始发送请求报文
        服务器收到客户端请求报文,准备发送响应报文
        相应报文发送完毕,服务器关闭TCP请求
        时间:2RTTs+传输时间
          TCP连接建立
          HTTP请求报文和响应报文发送
        建立TCP连接
          总的来说就是客户端发送,服务器响应,客户端接受,然后就开始数据传输
      HTTP1.1
        持久连接,连接完毕了之后一直保持连接,知道过了一段时间后还没有响应才关闭连接
        非流水线方式(一个一个来)
        流水线方式(一股脑扔过去)
    HTTP请求报文
      方法
        GET(获取)
        POST(发送)
        etc...
      URL
      版本
      首部行
      一个空行
      报文内容
      一行
    HTTP响应报文
      URL
      状态编码和短语
      一个空行
      报文内容
      一行
    Cookies
      组成部分
        响应报文一个首部行
        请求报文一个首部行
        浏览器内部保存的Cookies
        服务器端的数据库
      更改
        请求报文的Cookies行用来更改服务器数据库
        响应报文的Cookies行用来更改浏览器Cookies